# 需求：进入某 Web 项目登录页面，输入用户名、密码、验证码之后，点击登录按钮可以登录系统
# 类名：登录页面 ‐‐> LoginPage
# 属性：用户名、密码、验证码 ‐‐> username  password  code
# 方法：点击 ‐‐> click_button()   实现打印结果：登录成功
# dir()作用：查看对象中的所有属性和方法
# 2.实现代码

class Cat(object):
    """猫类"""
# 对象设置属性‐‐‐> 通过固定的方法 __init__()
    def __init__(self, name, age):
        """初始化方法：给对象设置属性"""
        self.name = name  # 姓名
        self.age = age  # 年龄
    def eat(self):
        """吃方法"""
        print(f"{self.name} 爱吃鱼")
    def drink(self):
        """喝方法"""
        print(f"{self.name} 要喝水")
# 类内部也可以调用方法，通过 self.方法名() 调用
        self.eat()
# 创建对象
tom = Cat("汤姆", 2)
 # tom.drink()  # 类外部通过  对象.方法名() 调用方法
# print(tom.age)  # 类外部通过  对象.属性名 获取属性
# 想知道当前对象有哪些属性？哪些方法？ ‐‐> 使用 dir(对象变量名) 函数
print(dir(tom))
# 结果 ：自己定义的   python内置的
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'drink', 'eat', 'name']